﻿#include <iostream>
using namespace std;
//
//class Stack
//{
//
//private:
//	int top;
//	int* a;
//	int capacity;
//
//public:
//	void Init(int DefaultCapicity = 4)
//	{
//		a = (int*)malloc(sizeof(int) * DefaultCapicity);
//		if (a == nullptr)
//		{
//			perror("Malloc fail");
//			return;
//		}
//		top = 0;
//		capacity = DefaultCapicity;
//	}
//
//	void Push(int x)
//	{
//		a[top++] = x;
//	}
//
//	void Destroy()
//	{
//		free(a);
//		a = nullptr;
//		capacity = 0;
//		top = 0;
//	}
//};
////int main()
////{
////	Stack st;
////	st.Init();
////	st.Push(1);
////	st.Push(2);
////	st.Push(3);
////	st.Push(4);
////	st.Destroy();
////	return 0;
////}
//
//int main()
//{
//	Stack st1;
//	Stack st2;
//	//st1.top = 1;这样是可形的，已经生成了对象
//	//Stack::top = 1;这样不可行，结构体的声明无法存数据
//}

//class A
//{
//public:
//	void PrintA()
//	{
//		cout << _a << endl;
//	}
//private:
//	char _a;
//};
//
//
//class A2
//{
//};
//
//class A3
//{
//public:
//	void f3()
//	{
//		;
//	}
//};
//int main()
//{
//	A a1;
//	cout << sizeof(A) << endl;
//	cout << sizeof(a1) << endl;
//	a1.PrintA();//不是到类里面找，而是去公共域找
//
//	cout << sizeof(A2) << endl;
//	cout << sizeof(A3) << endl;
//	return 0;
//}


class A
{
public:
	void Print()
	{
		cout << "Print()" << endl;//这种写法会正常运行
		//cout << _a << endl;这种写法就会运行报错
	}
private:
	int _a;
};

int main()
{
	A* a = nullptr;
	a->Print();
	return 0;
}